package com.system.common.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.system.common.bean.SeckillResult;

import java.util.List;

public interface ISeckillResultService {

    /**
     * 根据秒杀结果ID查询
     */
    SeckillResult getSeckillResultById(Integer id);

    /**
     * 根据用户ID和秒杀商品ID查询（避免重复秒杀）
     */
    SeckillResult getSeckillResultByUserAndSeckill(Integer userId, Integer seckillId, Integer activityId);

    /**
     * 新增秒杀结果
     */
    void addSeckillResult(SeckillResult seckillResult);

    /**
     * 更新秒杀结果（比如支付状态）
     */
    void updateSeckillResult(SeckillResult seckillResult);

    /**
     * 删除秒杀结果（逻辑删除）
     */
    void deleteSeckillResult(Integer id);

    /**
     * 获取所有秒杀结果
     */
    List<SeckillResult> getSeckillResultList();

    /**
     * 分页查询秒杀结果
     */
    IPage<SeckillResult> getPage(SeckillResult seckillResult, Page<SeckillResult> page);

    /**
     * 判断用户是否已经秒杀过该商品（避免重复秒杀）
     */
    boolean hasUserSeckilled(Integer userId, Integer seckillId, Integer activityId);
}
